public class Hanoi {
    //汉诺塔问题求解

    /**
     *
     * @param n 盘子数
     * @param pos1 起始位置
     * @param pos2 中转位置
     * @param pos3 目的位置
     */
    public static void hanNuo(int n,char pos1,char pos2,char pos3){
        if(n == 1){
            move(pos1,pos3);
            return;
        }
        hanNuo(n-1,pos1,pos3,pos2);
        move(pos1,pos3);
        hanNuo(n-1,pos2,pos1,pos3);
    }

    public static void move(char pos1,char pos2){
        System.out.print(pos1 + "->" + pos2 + " ");
    }

    public static void main(String[] args) {
        hanNuo(1,'A','B','C');//ABC为传参的初始值，并不是固定不变的
        System.out.println();
        hanNuo(2,'A','B','C');
        System.out.println();
        hanNuo(3,'A','B','C');
        System.out.println();
    }
}
